<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="util.*"%>
<%@page import="entidades.*"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.LinkedList"%>
<%@page import="java.text.SimpleDateFormat"%>

<html>
<head>

<%@ include file="jspf/head.jspf" %>

<script type="text/javascript">
	jQuery(document).ready(function()
		{
		jQuery("#form_filtros input.fecha").datepicker( {showAnim: "slideDown", dateFormat: "dd/mm/yy"} );

		jQuery("#form_filtros input[name='f-fecha1']").change( function()
			{changeCampoFecha("#form_filtros input[name='f-fecha1']", "#form_filtros input[name='f-fecha2']", 1);});
		jQuery("#form_filtros input[name='f-fecha2']").change( function()
			{changeCampoFecha("#form_filtros input[name='f-fecha1']", "#form_filtros input[name='f-fecha2']", 2);});
		});
</script>

<%
Date fecha1 = Util.parseDate(request.getParameter("f-fecha1"));
Date fecha2 = Util.parseDate(request.getParameter("f-fecha2"));
try{
	if(fecha1 == null) fecha1 = new Date();
	if(fecha2 == null) fecha2 = new Date(fecha1.getTime() + (long)69*86400000);
	}catch(Exception e) {}

List<Uteco> utecos = Uteco.listar();
%>

</head>
<body>

<%@ include file="jspf/header.jspf" %>

<br/>

<h1>Gráficos de carga de trabajo</h1>

<br/>

<!-- Tabla de filtros -->
<form action="" method="get" id="form_filtros">
	<input type="hidden" name="accion" value="filtro"/>

	<center><table class="filtros">
		<tr>
			<td>Seleccione el rango:</td>
			<td>
				<input type="text" name="f-fecha1" class="fecha" size="11" value="<%= Util.format(fecha1, "dd/MM/yyyy") %>"/>
				a
				<input type="text" name="f-fecha2" class="fecha" size="11" value="<%= Util.format(fecha2, "dd/MM/yyyy") %>"/>
			</td>
			<td><button name="buscar"><img src="icon/find.png" alt="" title="Buscar"/> <span>Buscar</span></button></td>
		</tr>
	</table></center>
</form>

<!-- Tablas -->
<%{
// Un dia (86.400.000 milisegundos) son 20 pixeles.
double pixelesXmilisegundos = 20.0 / 86400000.0;

for(int n=0; n<utecos.size(); n++)
	{
	// Obtengo los ciclos que se van a mostrar.
	List<CicloUteco> ciclos = CicloUteco.listar(utecos.get(n).getId(), fecha1, fecha2);

	// Calculo la capacidad disponible y ocupada de cada ciclo.
	long ciclos_anchoColumna[] = new long[ciclos.size()];
	String ciclos_codigoHtml[] = new String[ciclos.size()];

	for(int c=0; c<ciclos.size(); c++)
		{
		// Obtengo la longitud, en pixeles, de cada formato en funcion de su cantidad de bolsas.
		long capacidad = ciclos.get(c).getCapacidad();
		long milisegundos = ciclos.get(c).getFechaHoraFin().getTime() - ciclos.get(c).getFechaHoraInicio().getTime();

		if(milisegundos > 0)
			{
			ciclos_anchoColumna[c] = (long)(pixelesXmilisegundos * milisegundos);

			if(capacidad > 0)
				{
				long asignado = ciclos.get(c).getCapacidadAsignada();
				long disponible = capacidad - asignado;
				double pixelesXmetros = pixelesXmilisegundos * (milisegundos / capacidad);

				ciclos_codigoHtml[c] = "<div style=\"float:left; height:10px; width:"+ (long)(pixelesXmetros * asignado) +"px; background-color:#00e0e0\"></div>";
				ciclos_codigoHtml[c] += "<div style=\"float:left; height:10px; width:"+ (long)(pixelesXmetros * disponible) +"px; background-color:#e0e0e0\"></div>";
				}
			else
				{
				ciclos_codigoHtml[c] = "<div style=\"float:left; height:10px; width:"+ ciclos_anchoColumna +"px; background-color:#e0e0e0\"></div>";
				}
			}
		else
			{
			ciclos_codigoHtml[c] = "";
			ciclos_anchoColumna[c] = 0;
			}
		}

	// Calculo la longitud del relleno inicial (de los dias no incluidos por el primer ciclo).
	int relleno = (ciclos.size() <= 0)? 0 : (int)((ciclos.get(0).getFechaHoraInicio().getTime() - Util.toMidnight(fecha1).getTime()) * pixelesXmilisegundos);
	%>
	<br/>
	<table class="resultados">
		<tr class="titulo"><td colspan="<%= ciclos.size()+3 %>" align="left"><%= utecos.get(n).getDescriptor() %></td></tr>
		<tr>
		<% if(relleno > 0) { %>
			<td rowspan="2"><div style="width: <%= relleno %>px"></div></td>
		<% } %>

		<% {
		for(int c=0; c<ciclos.size(); c++)
			{ %>
			<td valign="top" align="center">
				<div><%= Util.format(ciclos.get(c).getFechaHoraInicio(), "dd/MM") %> al <%= Util.format(ciclos.get(c).getFechaHoraFin(), "dd/MM") %></div>
			</td>
			<% }
		} %>
		</tr>

		<tr>
		<% {
		for(int c=0; c<ciclos.size(); c++)
			{ %>
			<td valign="bottom">
				<div style="width:<%= (ciclos_anchoColumna[c]+5) %>px">
					<%= ciclos_codigoHtml[c] %>
					<div style="clear:both"></div>
				</div>
			</td>
			<% }
		} %>
		</tr>
	</table>
	<%
	}
}%>

<%@ include file="jspf/footer.jspf" %>

</body>
</html>
